Bank switching is een manier om een processor meer geheugen te laten gebruiken dan door de woordbreedte van de adresbus kan worden geadresseerd. Conceptueel wordt het totale aanwezige geheugen verdeeld in twee of meer stukken (memory banks) die afzonderlijk kunnen worden geselecteerd.
Een processor met een 16-bits adresbus (bijvoorbeeld een Z-80) kan maximaal 64kiB geheugen adresseren, wat neerkomt op 65536 geheugencellen. Omdat dit in sommige gevallen te weinig is, en een processor met meer adreslijnen niet beschikbaar of te duur is, kan middels wat extra hardware een (of meer) extra adreslijnen worden gesimuleerd. Elke extra "adreslijn" verdubbelt het adresbereik.
De extra adreslijnen kunnen niet direct in een intern adres worden gecodeerd, maar vereisen een I/O-instructie om de gesimuleerde adreslijn 'hoog' of 'laag' te maken. Deze actie wordt met bank switching aangeduid.